*&---------------------------------------------------------------------*
*& Report ZEX_LISTING_68                                               *
*&---------------------------------------------------------------------*
*& Created By: James Wood (james.wood@bowdarkconsulting.com)           *
*& Created On: 12/12/2008                                              *
*& Purpose:    This program shows how to implement an interface in a   *
*&             local class.                                            *
*&---------------------------------------------------------------------*
REPORT zex_listing_68.

*----------------------------------------------------------------------*
*       INTERFACE lif_iface
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE lif_iface.

  METHODS: m1,
           m2.

ENDINTERFACE.                    "lif_iface

*----------------------------------------------------------------------*
*       CLASS lcl_implementer DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_implementer DEFINITION.

  PUBLIC SECTION.
    INTERFACES: lif_iface.

ENDCLASS.                    "lcl_implementer DEFINITION

*----------------------------------------------------------------------*
*       CLASS lcl_implementer IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_implementer IMPLEMENTATION.

  METHOD lif_iface~m1.
    WRITE: / 'In method lif_iface~m1'.
  ENDMETHOD.                    "lif_iface~m1

  METHOD lif_iface~m2.
    WRITE: / 'In method lif_iface~m2'.
  ENDMETHOD.                    "lif_iface~m2

ENDCLASS.                    "lcl_implementer IMPLEMENTATION

*----------------------------------------------------------------------*
* START-OF-SELECTION Event Module                                      *
*----------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM test_implementer.

*&---------------------------------------------------------------------*
*&      Form  test_implementer
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM test_implementer.

* Local Data Declarations:
  DATA: lr_impl TYPE REF TO lcl_implementer.

* Create an instance of the implementing class:
  CREATE OBJECT lr_impl.

* Call the implemented methods:
  CALL METHOD lr_impl->lif_iface~m1.
  CALL METHOD lr_impl->lif_iface~m2.

ENDFORM.                    "test_implementer